/**机构进入校区，重新获取权限、菜单列表 */
import setCampusTime from '@/js/common/setCampusTime';
function relogin(lgdata,vm,menuTool,callback=()=>{}) {
	let firstCampusId='';
	api.switchRole()
	.then(function (data) {

		if (data.resultCode != 2000) {
			tool.message({
				showClose: true,
				message: data.message,
				type: "warning"
			});
			return Promise.reject();
		}
		vm.$store.dispatch("top/updateOrgEntrySchool", lgdata.orgEntrySchool);
		//保存token到本地,执行下一个请求
		// tool.setItem(lsKey.token, data.token);
		return api.loginUser();
	})
	.then(function (data) {
		
		//登录验证通过,保存登录用户信息
		tool.setItem(lsKey.user, data.user, true);
		//全局用户角色级别
		vm.$store.commit("setRoleMode", data.user.roleMode);

		//用户有关联校区
		if (data.user.campusList.length > 0) {
			firstCampusId=data.user.campusList[0].campusId;
			//获取本校区上课时间
			let param = {
				campusId: lgdata.campusId||firstCampusId
			};
			api.getListOfCampus(param).then(function (data) {
				setCampusTime(data.list);
			});
			//默认用户所属校区的第一个为当前校区,保存校区id至状态管理
			vm.$store.commit("setCampusId", lgdata.campusId||firstCampusId);
			return api.menu();
		}
	})
	.then(function (data) {

		//根据菜单设置路由,获取权限数据
		var permit = menuTool.getPermit(data.menuList);
		vm.$store.commit("setPermit", permit);
		// if (lgdata.orgEntrySchool) {
		// 	//根据菜单获取导航数据
		// 	var navObj = menuTool.getNav(data.menuList);
		// 	var path = '/work_platform/campus_detail';// tool.clone(vm.$store.state.permit["48"]).path;
		// 	navObj.nav[0].path = path;
		// 	vm.$store.commit("setNav", navObj.nav);
		// 	vm.$store.commit("setFirstPath", path);
		// 	//首个路径
		// 	if (path) {
		// 		router.push({
		// 			path: path,
		// 			query: { campusId: tool.encode(lgdata.campusId||firstCampusId) }
		// 		});
		// 	}
		// }
		// else {
			//根据菜单获取导航数据
			var navObj = menuTool.getNav(data.menuList);
			vm.$store.commit("setNav", navObj.nav);
			vm.$store.commit("setFirstPath", navObj.firstPath);
			//首个路径
			var path = navObj.firstPath;
			if (path) {
				vm.$nextTick(()=>{
					router.push(path);
					callback();
				});
			}
		// }

	})
	.catch(function () { });
}

export default relogin
